#include "../ControleSessao.h"
#include <iostream>
Sessao* ControleSessao::atual = NULL;

void ControleSessao::nova_sessao(Usuario* u)
{
    int id;
    Sessao* aux;
    Datetime  dt;

    aux = new Sessao();
    aux->set_id_usuario(u->get_id_reg());
    aux->set_id_usuario_tipo(u->get_ref_usuario_tipo());
    aux->set_nm_usuario(u->get_nm_usuario());
    aux->set_link_usuario(u);
    dt.set_localtime();
    aux->set_dt_login(dt);
    aux->ativar();

    ControleDados::DAOSessao->nova_sessao(aux);

    // recuperar o Identificador
    id = ControleDados::DAOSessao->recuperar_id(aux);
    aux->set_id_sessao(id);

    ControleSessao::atual = aux;
}

Sessao ControleSessao::get_sessao()
{
    Sessao ret,*aux;
    aux = ControleSessao::atual;
    ret.set_id_sessao(aux->get_id_sessao());
    ret.set_id_usuario(aux->get_id_usuario());
    ret.set_nm_usuario(aux->get_nm_usuario());
    ret.set_id_usuario_tipo(aux->get_id_usuario_tipo());
    ret.set_link_usuario(aux->get_link_usuario());
    ret.set_dt_login(aux->get_dt_login());
    ret.set_dt_logout(aux->get_dt_logout());
    ret.ativar();
    return ret;
}

void ControleSessao::terminar_sessao()
{
    int id;

    id = ControleSessao::atual->get_id_sessao();
    ControleDados::DAOSessao->encerrar_sessao(id);
}
